package cn.xxi.ai.common.entity;

import cn.xxi.ai.application.entity.Agent;
import cn.xxi.ai.common.constant.TagType;
import cn.xxi.ai.knowledge.entity.Knowledge;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 标签实体
 * 
 * @author bingo
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Tag extends BaseEntity {

    /** 名称 */
    private String name;

    /** 类型 */
    private TagType type;

    /** 所属智能体 */
    private List<Agent> agents;

    /** 所属知识库 */
    private List<Knowledge> knowledge;

    /**
     * 绑定次数（非持久化字段）
     * 
     * 用于统计 agents 和 knowledge 的总关联数。
     */
    public int getBindingCount() {
        int agentSize = agents != null ? agents.size() : 0;
        int knowledgeSize = knowledge != null ? knowledge.size() : 0;
        return agentSize + knowledgeSize;
    }
}
